package cn.org.wifit.core.orm;

import java.io.Serializable;

/**
 * 所有数据服务层的顶层定义接口，在这个接口下，我们分别使用：<br>
 * AbstractRelationalDBDAO支持关系型数据库
 * AbstractRepositoryDAO支持待查询功能非关系型数据库
 * AbstractHadoopDAO提供对hadoop的Mapreduce支持
 * @author wenjie
 */
public interface IWifitDAO <T> {
	/**
	 * 向数据层插入一个实体对象
	 * @param Entity
	 */
	public void insert(T Entity);
	
	/**
	 * 向数据层传入带有唯一标示的对象，并进行修改
	 * @param Entity
	 */
	public void update(T Entity);
	
	/**
	 * 在数据层使用一个可以被串行化的唯一标示，找到相应的数据对象
	 * @param id
	 */
	public T getEntity(Serializable id);
	
	/**
	 * 在数据层删除指定的唯一标示的数据
	 * @param id
	 */
	public void delete(Serializable id);
}
